/* 反向输出单链表

反向输出前一个任务 输出一个单链表 中的单链表。

使用两种解法：循环和递归 */

// 循环
/* const printReverseList = (list) => {
  let tmp = list;
  let logArr = [];

  while (tmp) {
    logArr.push(tmp.value);
    tmp = tmp.next;
  }

  for (let i = logArr.length; i != 0; i--) {
    console.log(logArr[i - 1]);
  }
}; */

// 递归
const printReverseList = (list) => {
  if (list) {
    printReverseList(list.next);
    console.log(list.value);
  }
};

let list = {
  value: 1,
  next: {
    value: 2,
    next: {
      value: 3,
      next: {
        value: 4,
        next: null,
      },
    },
  },
};

printReverseList(list);
